package Cafezam;

public class J16ch05Printers {

	public static void main(String[] args) {
		J16Printer p = new J16Printer("중소기업", "번들프린터","USB2.0");
		System.out.println(p.toString());
		J16InkjetPrinter ip= new J16InkjetPrinter("휴렛페커드","잉크젯프린터", "USB3.0");
		System.out.println(ip.toString());
		J16PrinterService ps = new J16PrinterService();
		ps.print(p);
		ps.print(ip);
}//main

}//class
class J16Printer{
	private String maker;
	private String model;
	private String interfaces;
	private int counts;
	private int remains;
	
	public J16Printer(String maker,String model,String interfaces)
	{
		this.maker=maker;
		this.model=model;
		this.interfaces=interfaces;
		
	}

	public String getMaker() {return maker;}
	public void setMaker(String maker) {this.maker = maker;}
	public String getModel() {return model;}
	public void setModel(String model) {this.model = model;}
	public String getInterfaces() {return interfaces;}
	public void setInterfaces(String interfaces) {this.interfaces = interfaces;}
	public int getCounts() {return counts;}
	public void setCounts(int counts) {this.counts = counts;}
	public int getRemains() {return remains;}
	public void setRemains(int remains) {	this.remains = remains;}
	
	@Override
	public String toString() {
		String result="";
		result+=maker+"/"+model+"/"+interfaces+"/"+counts+	"/"+remains;
     	return result;
	}
	
}

class J16InkjetPrinter extends J16Printer{
	//부모클래스에 기본생성자가 정의되지 않았기 때문에 자식클래스에서 따로 생성자를 정의
	//해둬야 함
	public J16InkjetPrinter(String maker, String model, String interfaces) {
		super(maker, model, interfaces);
		//super()-부모 클래스의 생성자를 가리키는 말
		}
}
interface J16PrinterIService{
	void print(J16Printer p);
	}

class J16PrinterService implements J16PrinterIService
{
	@Override
	public void print(J16Printer p) {
		String result = p.getModel()
		+"가 문서를 출력합니다";
		System.out.println(result);
		
	}
}
